
Nombre:
Silver (Plugin para PhotoShop)
Versión:
genérica
Editor:
SansWater
Víctima:
SILVER-100.8BF
Herramientas:
W32Dasm
HIEW
Cerebro
Cracker:
LW2000
Tutorial:
número 41
URL:
http://www.sandwater.com/download.html
Renuncia: Este tutorial tiene una finalidad únicamente
educativa. No asumo ninguna responsabilidad por el mal uso de éste material.
1.
Bien, arrancamos PhotoShop e intentamos
registrar el plugin Silver. Bien, todo funciona estupendamente. Cerramos PhotoShop
y ponemos la fecha del sistema un mes avanzada.
2.
Bien, arrancamos nuevamente PhotoShop
y probamos el plugin Silver. ¡Boooom! “Trial has expired!” ¡Hmmm! Parece que
hemos encontrado un error … ¡Vamos a arreglarlo!
3.
Cargamos “SILVER-100.9BF” en W32Dasm.
Hacemos click en las ‘String Data References’. Ahora deberíamos ver esto:
NO_THANKS1,
CONTROL_ID:0063, "A valid code was not entered."
REG_TIMEOUT,
CONTROL_ID:0064, "- Pay by mail to Kagi, 1442-A Walnut Str"
REG_TIMEOUT,
CONTROL_ID:0065, "Payment is accepted through Kagi, a fee "
REGISTER1,
CONTROL_ID:0003, ""
4.
Bien, cerramos ésta ventana y vamos a
“REG_TIMEOUT” en las ‘String Data References’:
* Possible StringData Ref from Data Obj ->"REG_TIMEOUT"
|
:1000D0A5 6844D10110 push 1001D144
:1000D0AA E88190FFFF call 10006130
:1000D0AF 56 push esi
:1000D0B0 E8ABFBFFFF call 1000CC60
:1000D0B5 8B0E mov ecx, dword ptr [esi]
:1000D0B7 83C418 add esp, 00000018
:1000D0BA 66C7010100 mov word ptr [ecx], 0001
5.
¡Hmmm! Nos desplazamos hacia arriba:
* Referenced by a (U)nconditional or (C)onditional
Jump at Address:
|:1000D054(C)
>Vamos aqui
|
* Possible StringData Ref from Data Obj ->"The
price is US$20."
|
:1000D08C 685CD10110 push 1001D15C
* Possible StringData Ref from Data Obj ->"Silver"
|
:1000D091 6818D10110 push 1001D118
* Possible StringData Ref from Data Obj ->"two
weeks"
|
:1000D096 6850D10110 push 1001D150
* Possible StringData Ref from Data Obj ->"Silver"
|
:1000D09B 6818D10110 push 1001D118
:1000D0A0 E87B8AFFFF call 10005B20
* Possible StringData Ref from Data Obj ->"REG_TIMEOUT"
6.
Bien, vamos a la posición ‘1000D054’
ya que es desde ahí desde donde se llama a REG_TIMEOUT:
:1000D054 7D36 jge 1000D08C >¡Bad
Boy!
:1000D056 8B54240C mov edx, dword ptr [esp+0C]
:1000D05A 56 push esi
:1000D05B 81C2807FF1FF add edx, FFF17F80
:1000D061 899054010000 mov dword ptr [eax+00000154], edx
:1000D067 8B4604 mov eax, dword ptr [esi+04]
:1000D06A 8B500C mov edx, dword ptr [eax+0C]
:1000D06D 8B02 mov eax, dword ptr [edx]
:1000D06F 89884C010000 mov dword ptr [eax+0000014C], ecx
:1000D075 E80661FFFF call 10003180
7.
Bien, hemos encontrado la primera comprobación,
vamos a cargárnosla. Anotamos el offset (‘D054’) y abrimos HIEW y entonces
cambiamos el ‘7336’ a ‘9090’ (dos instrucciones ‘NOP’). Guardamos nuestro
trabajo y probamos el plugin.
8.
¡Boooom! Aparece una messageBox que nos
dice que tenemos una nueva versión y por consiguiente obtenermos un nuevo
período ‘Trial’. ¡Una semana más! Si no le aparece ésa messageBox símplemente
ponga la fecha del sistema un mesa adelante (¿por qué un mes y no una semana?).
9.
Vamos a echar otro vistazo. Abrimo el
fichero con W32Dasm y observamos las ‘String Data References’. La cadena “Version
Alert” suena muy interesante. Vamos allá:
* Possible StringData Ref from Data Obj ->"VERSION_ALERT"
|
:1000D07A 6870D10110 push 1001D170
:1000D07F E8AC90FFFF call 10006130 >Establece
el ‘Trial period’
>y el mensaje
:1000D084 83C408 add esp, 00000008
:1000D087 5F pop edi
:1000D088 5E pop esi
:1000D089 5B pop
ebx
:1000D08A 59 pop ecx
:1000D08B C3 ret
10.
¡Hmmm! ¿Qué tenemos que hacer ahora? Símplemente poner a ‘NOPs’ la
instrucción ‘CALL’. Con lo cual cada vez que se ejecute éste engendro tendremos
una semana más de ‘trial period’ y de éste modo no expirará nunca.
11.
Vamos a hacerlo. Abrimos HIEW, cargamos el fichero y vamos al offset
(‘D07F’) e introducimos cinco instrucciones ‘NOP’:
12.
Guardamos nuestro trabajo y lo probamos nuevamente.
¡Enhorabuena! ¡Ya es usted un usuario registrado!
¡Se acabó! Fácil, ¿no? ¿Algún comentario? Envíeme
un email a LW2000@gmx.net.
o vaya a http://www.LW2000.cjb.net
Gracias a tKC por sus tutoriales. Empecé leyendo su
primer tutorial y todavía sigo leyéndolos.
Traducción de: MeGaBiTe